v1.6.0
Release Date
April 17, 2026
Highlights
This release centers on a major refactor of the Job module, introducing a clean Job / Operator / Executor / Trial abstraction. On top of this foundation, two new job types are now supported — BashJob (with OSS artifact mirroring) and HarborJob. The CLI rock job run command has been reworked with strict YAML validation and auto job-type detection.
Job Module
New Architecture
Job / Operator / Executor / Trial Abstraction
-
NEW: Refactored the Job module into a layered architecture:
Job→Operator→Executor→Trial. This decouples job orchestration, scheduling, execution, and per-attempt logic, making it easy to add new job types (#779, #780) -
Hoisted
on_sandbox_readybackfill logic toAbstractTrialto share across all trial types (#788, #789)
BashJob
-
NEW: BashJob trial support — submit shell scripts as jobs via the SDK or CLI. See
examples/bash/simple_bash_job_demo.sh(#772) -
NEW: BashJob OSS Mirror — automatically uploads job artifacts to OSS after completion (#823)
-
Added
claw-evalBashJob demo underexamples/evaluation/claw_eval/(#804)
HarborJob
- NEW: HarborJob trial support, enabling agent-style job submission via the new Job abstraction (#798)
Configuration & Validation
Job Type Auto-Detection
- NEW:
rock job runnow auto-detects job type from YAML via strict Pydantic model validation — no need to specify--type(#814)
Dual-Mode Input
- NEW:
rock job runreworked to support both--config(full YAML) and inline argument modes with strict validation and clearer error messages (#818)
Native Template Config
- NEW: Added
TemplateConfigandtemplatefield toNativeConfigfor template-based job definitions (#786)
Auto-Generated job_name
- Truncate long path segments when auto-generating
job_nameto avoid downstream length limits (#791)
Default Timeout Increased
- Increased default
JobConfigtimeout from 3600s to 7200s to better match real-world long-running jobs (#806, #810)
Bug Fixes
-
JobConfig.experiment_idnow takes priority overenvironment.experiment_idto give callers explicit control (#822) -
BashTrial.collectnow correctly populatesraw_outputandexit_code(#808) -
Removed redundant
shebangandset -einjection fromBashTrial.build()to honor user scripts (#816)
EnvHub
Refactoring
-
BREAKING:
JobEnvironmentConfighas been moved toenvhubasEnvironmentConfig. Update import paths accordingly (#800) -
Removed the deprecated
auto_stopparameter fromEnvironmentConfig— sandbox lifetime is now controlled viaauto_delete_seconds(introduced in v1.5.0) (#820) -
Refactored EnvHub uploads pipeline for clearer separation between client and server responsibilities (#802)
Admin
Database
- Enlarged
SandboxRecord.imagecolumn from 255 to 512 chars to support longer registry paths, and disabled asyncpg prepared-statement cache to avoid PgBouncer compatibility issues (#794)
CLI
- Lazy-import
psutilin theadmin stopcommand to speed up unrelated CLI invocations and avoid import-time failures whenpsutilis unavailable (#831)
Testing & CI
-
Added
SELECT 1readiness check to thepg_containertest fixture to avoid flaky integration tests (#778) -
Applied repo-wide
ruff formatpass and translated remaining Chinese comments to English (#812)
Migration Notes
-
auto_stopremoved: Update anyEnvironmentConfigusage that relied onauto_stop. Useauto_delete_seconds(introduced in v1.5.0) instead. -
JobEnvironmentConfig→EnvironmentConfig: Update imports fromrock.sdk.agent.models.jobtorock.sdk.envhub. -
Default Job timeout: Jobs that previously hit the 3600s timeout will now run up to 7200s by default. Set
JobConfig.timeoutexplicitly if you need the old behavior. -
rock job run: The CLI now validates YAML strictly. Configs with unknown or missing fields that previously passed silently will now fail fast.